Kotlin 2.3.0 现已发布!又有什么好东西?
· 阅读需 16 分钟
大家吼哇,这次轮到 Kotlin 2.3.0 登场啦! 本次更新内容可以在 JetBrains 官方的 What's new in Kotlin 2.3.0 查阅, 我照例挑自己最感兴趣的改动聊聊。
一句话总结:Java 25 终于支持,特性体验逐渐舒适。实用功能层出不穷,小伙伴们赶快更新~
注意!这次依旧是「我个人 pick」的更新摘要,覆盖不了全部改动;对其他领域感兴趣、但是我没提到的伙伴可以继续深入官方文档喔。
文中示例如无特殊说明均来自或改写自官方日志。
语言特性
一如既往先看语言层面,首先映入眼帘的是对一部分实验特性的转正,然后是一批新晋实验特性,最后是对 Java 25 的支持。
一如既往的方阵阵营。
嵌套类型别名 & when 数据流穷举转正稳定
之前在 2.2.x 里加入的「嵌套 typealias 支持」(Support for nested type aliases)
和「基于数据流的 when 穷举检查」(Data-flow-based exhaustiveness checks for when expressions) 转正咯。
现在写多层 typealias 不会再有警告,
when 也会结合 smart cast 和 sealed 的上下文做更聪明的穷举判断了。
默认启用 suspend 解析 & 函数表达式里 return
注意:这个更新是在
2.3.0的某个 EAP 版本中描述的,但是在 2.3.0 正式版更新中没有描述,因此它可能被移除了。
Kotlin 2.3.0 默认启用了两项之前需要 -language-version 2.3 的特性:
- 传
lambda给既有suspend又有非suspend重载时,不再需要手动强转,直接写suspend { }就行。 - 函数表达式里允许
return,只需显式标注返回类型。之前写fun foo() = return 42会报错,现在没事啦。